/*****************************
 *  博主: 天才小狐狸
 *  公众号: Java设计
 *  邮箱：genius.fox@gmail.com
 *  含泪播种的人一定能含笑收获
 ****************************/

package com.michale.common.annotation.validator;


import com.michale.common.annotation.ListValue;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;


/**
 * @author Michale
 * @apiNote  必须提交指定的值 [0,1] 校验器
 */
public class ListValueValidator implements ConstraintValidator<ListValue, Integer> {

    private final Set<Integer> set = new HashSet<>();
    /* 获取注解允许的值 */
    @Override
    public void initialize(ListValue constraintAnnotation) {

        int[] value = constraintAnnotation.value();
        for (int i : value) {
            set.add(i);
        }
    }
    /* 判断传入的值是否在满足允许的值 */
    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext context) {
        return set.contains(value);
    }
}
